﻿/**********************************************************************
 * @file   FITKFESubSysStructure.h
 * @brief  FE子系统结构数据声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-12-17
 *********************************************************************/
#ifndef _FITK_FE_SUBSYS_STRUCTURE_H___
#define _FITK_FE_SUBSYS_STRUCTURE_H___
 
#include "FITKAbstractFESubSys.h"

namespace Acoustics
{
    class FITKAcousticsAbstractSpectra;
    class FITKAcousticsFEFace;
    /**
     * @brief  FE子系统结构面数据类
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-12-13
     */
    class FITKAcousticsModelAPI FITKFESubSysStructure : public FITKAbstractFESubSys
    {
        Q_OBJECT
    public:
        /**
         * @brief Construct a new FITKFESubSysStructure object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
         */
        explicit FITKFESubSysStructure();
        /**
         * @brief Destroy the FITKFESubSysStructure object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
         */
        virtual ~FITKFESubSysStructure();
        /**
        * @brief 获取子系统类型
        * @return FESubSysType
        * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
        */
        virtual FITKAbstractFESubSys::FESubSysType getFESubSysType();
        /**
         * @brief    生成FE面-对象没有被管理：需要手动添加到管理器中、或使用后释放
         * @return   FITKAcousticsFEFace* 
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-16
         */
        FITKAcousticsFEFace* generateFEFace();
        /**
         * @brief    设置阻尼谱ID
         * @param[i] dampSpecID
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        void setDampingLossSpectraID(int dampSpecID);
        /**
         * @brief    获取阻尼谱ID
         * @return   int
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        int getDampingLossSpectraID();
        /**
         * @brief    获取阻尼谱
         * @return   FITKAcousticsAbstractSpectra *
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        FITKAcousticsAbstractSpectra* getDampingLossSpectraObj();

    protected:
        /**
         * @brief  阻尼损失谱ID
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-17
         */
        int _dampLossSpectraID{ -1 };

    };

}


#endif
